var options = {};	//上传配置对象
var sequence = {};	//上传成功的文件对象序列,对象包含两个属性.{fileName:文件名称,fileSize:文件大小},文件名称唯一

function ajaxFileUpload(element) {
    //解决ie不支持trim
    if (!String.prototype.trim) {
        String.prototype.trim = function () {
            return this.replace(/^\s+|\s+$/g, '');
        };
    }
    options = {
        fileListContainer: element.fileListContainer == undefined ? element.id.trim() : element.fileListContainer.trim(),
        id: element.id.trim(),
        fileSize: element.fileSize == undefined ? 1024 * 1024 * 5 : element.fileSize,
        totalSize: element.totalSize == undefined ? 1024 * 1024 * 50 : element.totalSize,
        currentSize: 0,
        totalNumber: element.totalNumber == undefined ? -1 : element.totalNumber
    };
    var $label = $('<label>点击上传图片</label>');
    var $input = $('<input id="file1" onchange="return upload(this)" type="file" name="file">');
    if (element.fileListContainer) {
        $input = $('<input id="file1" onchange="return upload(this,\'' + options.fileListContainer + '\')" type="file" name="file">');
    } else {
        var filesDiv = $('<div></div>');	//生成放置文件列表的div
        $(options.id).after(filesDiv);
    }
    $(options.id).append($input);
    $(options.id).append($label);
}

function upload(element, container) {
    var elementId = $(element).attr('id');
    //获取文件名
    var localPath = $(element).val().split("\\");
    var fileName = localPath[localPath.length - 1];

    //验证文件数量
    if (options.totalNumber != -1) {
        var number = 0;
        for (var item in sequence) {
            number++;
        }
        //遍历对象属性个数，判断
        if (options.totalNumber == number) {
//				if(options.totalNumber == Object.getOwnPropertyNames(sequence).length){			IE不支持
            $(element).val('');
            alert('上传文件数最多' + options.totalNumber + '个，上传失败！');
            return false;
        }
    }

    //验证文件名是否重复，重复不允许上传
    if (sequence[fileName]) {
        $(element).val('');
        alert('文件重复！');
        return false;
    }

    //验证文件类型是否允许上传
    if (!Check_FileType(fileName)) {
        $(element).val('');
        return false;
    }

    //判断文件大小
    var fileSize = 0;
//		  var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
    //判断是否是IE
    if (-[1,]) {

        fileSize = element.files[0].size; //单位为byte
        //验证单个文件大小是否超出限制	ps:可以在上传前验证文件大小，减少后台服务器请求，不支持IE浏览器
        if (fileSize > options.fileSize) {
            alert("超出文件大小" + options.fileSize / 1024 + "KB限制，上传失败!");
            $(element).val('');
            return false;
        }
        //验证文件总大小是否超出限制		ps:可以在上传前验证文件大小，减少后台服务器请求，不支持IE浏览器
        if (options.currentSize + fileSize > options.totalSize) {
            alert("超出文件总大小" + options.totalSize / 1024 + "KB限制，上传失败!");
            $(element).val('');
            return false;
        }
    }

    //判断是否多次上传，如果是则删除上一次上传的文件
    var secondUpload = $("#uploadImageUrl").val();
    var existFile = $("#uploadImagePath").val();
    if (secondUpload.length > 0) {
        if (confirm("再次上传的图片会覆盖原来的图片,是否要继续?")) {
            $.ajax({
                url: 'companyStylePrpltypeDelete.jsp',
                type: 'post',
                data: {imagePath: existFile},
                dataType: 'json'
            })
        }
    }

    $.ajaxFileUpload({
            url: '/image/ajax_upload', 		//用于文件上传的服务器端请求地址
            secureuri: false, 					//是否需要安全协议，一般设置为false
            fileElementId: elementId, 			//文件上传域的ID
            dataType: 'json', 					//返回值类型 一般设置为json
            success: function (data, status) { 	//服务器成功响应处理函数
                //解决ie不支持trim
                if (!String.prototype.trim) {
                    String.prototype.trim = function () {
                        return this.replace(/^\s+|\s+$/g, '');
                    };
                }
                if (data.code == '1') {
                    $('#uploadImageUrl').val(data.imageUrl);
                    $('#uploadImagePath').val(data.filePath);
                    alert('上传图片成功！');
                } else if (data.code == '0') {
                    alert('上传图片失败!');
                    return;
                }

                //var fileObj = {};
                //sequence[data.infoData[0].fileName] = data.infoData[0].fileSize;//将上传成功的文件加入序列中
                //options.currentSize += data.infoData[0].fileSize;	//将上传成功的文件大小加入当前文件大小中
                //
                ////上传成功，从json数组中获取下载路径
                //var dowloadPath = JSON.stringify(data.data[0]);
                //
                //var filePath = ($('#filePath').val().trim() == "" ? "" : ",") + dowloadPath.trim();
                //$('#filePath').val($('#filePath').val().trim() + filePath);
                ////生成上传成功的文件列表，可以删除
                //var $span = $("<span style='display:inline-block;height:16px;'></span>"), $a = $("<a style='display:inline-block;height:16px;margin-right:10px;' href='javascript:;'><img style='vertical-align:middle;border-style:none;' alt='delete' src='./js/cancel.png'></a>");
                //$span.html(fileName);
                //$span.append($a);
                //$a.click(function () {
                //
                //    var delParam = {
                //        'fid': data.data[0].fId,
                //        'fna': data.data[0].fileName,
                //        'companyID': data.data[0].companyId
                //    };
                //    //ajax删除服务器已经上传的文件
                //    $.ajax({
                //        url: 'deleteUploadFile.jsp',
                //        data: delParam,
                //        dataType: 'text',
                //        success: function (result) {
                //        }
                //    });
                //
                //    //删除上传的json数据
                //    var path = $('#filePath').val();
                //    path = path.replace(filePath, '');
                //    $('#filePath').val(path);
                //    //从上传成功的序列中移除，根据名称
                //    var deleteFile = sequence[$(this).parent().text()];
                //    delete sequence[$(this).parent().text()];
                //    options.currentSize -= deleteFile;
                //    //删除上传成功的列表
                //    $(this).parent().remove();
                //});
                //if (container) {
                //    $(container).append($span);
                //} else {
                //    $('#' + elementId).parent().next().append($span);
                //}
            },
            error: function (data, status, e) {//服务器响应失败处理函数
                alert(e);
            }
        }
    )
    $(element).val('');
    return false;
}

function Check_FileType(str) {
    var pos = str.lastIndexOf(".");
    var lastname = str.substring(pos, str.length)  //此处文件后缀名也可用数组方式获得str.split(".")
    if (lastname.toLowerCase() != ".gif" && lastname.toLowerCase() != ".bmp" && lastname.toLowerCase() != ".png" && lastname.toLowerCase() != ".jpeg" && lastname.toLowerCase() != ".jpg") {
        alert("上传的文件非图片格式!");
        return false;
    } else {
        return true;
    }
}